package array;

import java.util.Arrays;

/**
 * 数组拷贝
 * System.arraycopy(srcArr, srcPos, destArr, destPos, length)。提前已经创建好目标数组
 * Arrays.copyOf(srcArr, length)。在拷贝数组的同时创建目标数组，底层也是使用了System.arraycopy()方法。
 * 另外：只有当数组中的元素类型为基础类型、包装类型、String这3种时，是深拷贝，
 *  其他情况都是浅拷贝（原数组和新数组中的元素引用的是同一个对象，修改一个数组中的引用的对象，会影响另一个数组）。
 */
public class ArrayCopyTest {

    public static void main(String[] args) {

        Object[] src = new Object[]{12,13,14,15,16,17};

//        Object[] arraysCopyOf = Arrays.copyOf(src, 3);
//        printArray(arraysCopyOf);

        Object[] systemArrayCopy = new Object[5];
        System.arraycopy(src, 2, systemArrayCopy, 2, 3);
        printArray(systemArrayCopy);



    }

    private static void printArray(Object[] arr){
        for (Object o : arr) {
            System.out.println(o!=null ? o.toString() : "null");
        }
    }

}
